# 获取需要更新的APP内容
stty erase '^H'
is_op_type=0
while (( is_op_type <= 0 ))
do
  # 让用户选择输入
  read -p "请选择操作类型 1-更新 2-回退:" op_type
  if [ $op_type = "1" ]; then
    is_op_type=1
    echo -e "\e[45m选择的操作类型-1-更新... \e[0m"

    cd /data/apache-tomcat-9.0.76/webapps/
    eliteupdate_bak=eliteupdate_bak_`date +%Y%m%d%H%M%S`.tar.gz
    echo 当前备份文件名:${eliteupdate_bak} 备份文件打包中...
    tar -zcvf $eliteupdate_bak ngs webchat groovy
    echo 归档打包完成,将备份文件放入归档文件夹...
    rm -rf ../webapps_bak/$eliteupdate_bak
    mv $eliteupdate_bak ../webapps_bak/
    echo 归档备份处理完成...

    updatefiles=updatefiles_`date +%Y-%m-%d-%H`.tar.gz
    echo 新下载版本文件:${updatefiles}
    rm -rf get?file*.tar.gz*
    wget 'https://ccctest.davco.cn/ngs/fs/get?file='$updatefiles
    mv get?file*.tar.gz ${updatefiles}
    echo 下载完成,清理现有各个应用Jar包避免冲突...

    rm -rf ngs/WEB-INF/lib/* groovy/WEB-INF/lib/* webchat/WEB-INF/lib/*
    echo 清理完成,准备解压更新文件...

    tar -zxvf $updatefiles
    mv $updatefiles /nas/davco_cc/ngs/
    echo 更新版本文件处理完成,请手动执行:sh /data/reboottomcat8010.sh 完成重启...


  elif [ $op_type = "2" ]; then
    is_op_type=1
    echo -e "\e[45m选择的操作类型-2-回退... \e[0m"

    is_op_type2=0
    while (( is_op_type2 <= 0 ))
    do
      # 让用户选择输入
      echo -e "\e[44m近7天内版本列表如下: \e[0m"
      find /data/apache-tomcat-9.0.76/webapps_bak/ -mtime -7 -name "eliteupdate*.tar.gz";

      read -p "请选择回退版本号(格式:YYYYMMDDHHMMSS 如:20231124205409):" op_version
      eliteupdate_bak=eliteupdate_bak_${op_version}.tar.gz
      echo 当前回退文件名:${eliteupdate_bak} ...

      if [ ! -f "/data/apache-tomcat-9.0.76/webapps_bak/"$eliteupdate_bak ];then
        is_op_type2=0
        echo -e "\e[31m回退版本文件不存在，请重新选择! \e[0m"
      else
        is_op_type2=1
        echo -e "\e[42m回退版本文件存在，开始回退... \e[0m"

        cd /data/apache-tomcat-9.0.76/webapps/
        eliteback_bak=eliteback_bak_`date +%Y%m%d%H%M%S`.tar.gz
        echo 回退-当前备份回退前版本-文件名:${eliteback_bak} 备份文件打包中...
        tar -zcvf $eliteback_bak ngs webchat groovy
        echo 回退-归档打包完成,将备份回退文件放入归档文件夹...
        rm -rf ../webapps_bak/$eliteback_bak
        mv $eliteback_bak ../webapps_bak/
        echo 回退-归档备份回退处理完成...

        echo 回退-开始回退...版本文件:${eliteupdate_bak}
        mv ../webapps_bak/$eliteupdate_bak ./
        echo 回退-回退文件复制完成,清理现有各个应用Jar包避免冲突...
        rm -rf ngs/WEB-INF/lib/* groovy/WEB-INF/lib/* webchat/WEB-INF/lib/*
        echo 回退-清理完成,准备解压更新文件...
        tar -zxvf $eliteupdate_bak
        rm -rf $eliteupdate_bak
        echo 回退-回退版本文件处理完成,请手动执行:sh /data/reboottomcat8010.sh 完成重启...

      fi

    done

  else
    is_op_type=0
    echo "选择要操作类型不支持，请重新选择!"
  fi
done